page.tsx 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import { getTranslations, setRequestLocale } from "next-intl/server";
  2. import { Suspense } from "react";
  3. import VerifyEmailForm from "./verify-email-form";
  4. interface VerifyEmailPageProps {
  5. params: Promise<{ locale: string }>;
  6. }
  7. export async function generateMetadata({ params }: VerifyEmailPageProps) {
  8. const { locale } = await params;
  9. const t = await getTranslations({ locale, namespace: "auth.verifyEmail" });
  10. return {
  11. title: t('pageTitle'),
  12. };
  13. }
  14. export default async function VerifyEmailPage({ params }: VerifyEmailPageProps) {
  15. const { locale } = await params;
  16. // Enable static rendering
  17. setRequestLocale(locale);
  18. return (
  19. <Suspense fallback={
  20. <div className="min-h-screen flex items-center justify-center bg-gray-50">
  21. <div className="text-center">
  22. <div className="animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto"></div>
  23. <p className="mt-4 text-gray-600">Loading...</p>
  24. </div>
  25. </div>
  26. }>
  27. <VerifyEmailForm locale={locale} />
  28. </Suspense>
  29. );
  30. }